<html>
<head><meta charset="utf-8"><title>Meeting 2021-06-07 · project-portable-simd · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/index.html">project-portable-simd</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html">Meeting 2021-06-07</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="241833786"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241833786" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241833786">(Jun 07 2021 at 20:11)</a>:</h4>
<p>Hello, do I have folks for today? <a href="https://hackmd.io/K-qO8F32TEKjUSrbiimNtw">https://hackmd.io/K-qO8F32TEKjUSrbiimNtw</a></p>



<a name="241833977"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241833977" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241833977">(Jun 07 2021 at 20:12)</a>:</h4>
<p>If not, next week is fine too: doing opposite weeks from PEH might be a better idea.</p>



<a name="241836889"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241836889" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Caleb Zulawski <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241836889">(Jun 07 2021 at 20:34)</a>:</h4>
<p>Hello! I'm back <span aria-label="grinning" class="emoji emoji-1f600" role="img" title="grinning">:grinning:</span></p>



<a name="241837147"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241837147" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Caleb Zulawski <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241837147">(Jun 07 2021 at 20:36)</a>:</h4>
<p>And ready to talk about moving to nightly...</p>



<a name="241837301"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241837301" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241837301">(Jun 07 2021 at 20:37)</a>:</h4>
<p>Helloooo~</p>



<a name="241837699"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241837699" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241837699">(Jun 07 2021 at 20:41)</a>:</h4>
<p>Oh okay so</p>
<blockquote>
<p>My understanding is that once a feature flag is stabilized you're not supposed to move new things to it.</p>
</blockquote>
<blockquote>
<p>My assumption is we probably still will not be stabilizing for a while, and can add things to it? I don't really know.</p>
</blockquote>
<p>Yes, you can move things around between feature flags.<br>
I got a bit distracted by the <code>simd_gather</code> and trait thing because it took unexpected time and I had to bugfix the compiler! ^^;;;<br>
But also over the past few months I did a bunch of stabilization PRs to get familiar with the process and also Rust's feature gates. Making unstable and stabilizing library features is the easiest thing.</p>



<a name="241838052"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241838052" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Caleb Zulawski <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241838052">(Jun 07 2021 at 20:44)</a>:</h4>
<p>I took a look at how stdarch is done and I think it's overall a good model</p>



<a name="241838127"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241838127" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Caleb Zulawski <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241838127">(Jun 07 2021 at 20:44)</a>:</h4>
<p>The module overall is marked as unstable, so you can use a feature to enable the entire module</p>



<a name="241838178"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241838178" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Caleb Zulawski <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241838178">(Jun 07 2021 at 20:45)</a>:</h4>
<p>And then once we stabilize things we can mark particular items as stable but leave the totality of the module unstable</p>



<a name="241838297"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241838297" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241838297">(Jun 07 2021 at 20:46)</a>:</h4>
<p><em>nods</em></p>



<a name="241838301"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241838301" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Caleb Zulawski <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241838301">(Jun 07 2021 at 20:46)</a>:</h4>
<p>We can bikeshed naming to make sure it's not confusing but overall it's probably the easiest since the initial step is just marking the entire module unstable and allowing all the items to inherit that</p>



<a name="241838345"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241838345" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241838345">(Jun 07 2021 at 20:46)</a>:</h4>
<p>Yeah, individual functions can be annotated like<br>
<code>#[unstable(feature = "with_options", issue = "65439")]</code><br>
<code>#[stable(feature = "with_options", since = "1.54.0")]</code><br>
and they don't have anything too special about them.</p>



<a name="241838370"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241838370" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241838370">(Jun 07 2021 at 20:47)</a>:</h4>
<p>But there is one important detail we have to make sure we do correctly. ^^;</p>



<a name="241838377"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241838377" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241838377">(Jun 07 2021 at 20:47)</a>:</h4>
<p>namely: stdarch is a submodule of rustc.</p>



<a name="241838392"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241838392" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241838392">(Jun 07 2021 at 20:47)</a>:</h4>
<p>...that has been a very bad thing for stdarch.</p>



<a name="241838435"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241838435" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241838435">(Jun 07 2021 at 20:47)</a>:</h4>
<p>We probably want to add this as a subtree.</p>



<a name="241838485"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241838485" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Caleb Zulawski <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241838485">(Jun 07 2021 at 20:48)</a>:</h4>
<p>Is it that big of an issue?  My understanding is rustc has something like a dozen submodules</p>



<a name="241838510"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241838510" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241838510">(Jun 07 2021 at 20:48)</a>:</h4>
<p>Yes.</p>



<a name="241838563"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241838563" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241838563">(Jun 07 2021 at 20:48)</a>:</h4>
<p>It has been a huge pain, especially for tools, since sometimes a change needs to simultaneously hit rustc and a tool.</p>



<a name="241838583"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241838583" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Caleb Zulawski <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241838583">(Jun 07 2021 at 20:48)</a>:</h4>
<p>Hmmm</p>



<a name="241838619"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241838619" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241838619">(Jun 07 2021 at 20:49)</a>:</h4>
<p>And because we're tinkering with compiler internals just to get our library to work, we really want to be able to poke both at the same time.</p>



<a name="241838689"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241838689" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Caleb Zulawski <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241838689">(Jun 07 2021 at 20:50)</a>:</h4>
<p>I'm honestly not familiar with subtrees, and submodules can be a pain, so as long as it makes sense sounds good to me</p>



<a name="241838802"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241838802" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241838802">(Jun 07 2021 at 20:50)</a>:</h4>
<p>Subtrees are basically "trick git into thinking it's all one repo".</p>



<a name="241838995"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241838995" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241838995">(Jun 07 2021 at 20:52)</a>:</h4>
<p>From the git repo itself:</p>
<blockquote>
<p>Subtrees allow subprojects to be included within a subdirectory<br>
of the main project, optionally including the subproject's<br>
entire history.</p>
<p>For example, you could include the source code for a library<br>
as a subdirectory of your application.</p>
<p>Subtrees are not to be confused with submodules, which are meant for<br>
the same task. Unlike submodules, subtrees do not need any special<br>
constructions (like '.gitmodules' files or gitlinks) be present in<br>
your repository, and do not force end-users of your<br>
repository to do anything special or to understand how subtrees<br>
work. A subtree is just a subdirectory that can be<br>
committed to, branched, and merged along with your project in<br>
any way you want.</p>
<p>They are also not to be confused with using the subtree merge<br>
strategy. The main difference is that, besides merging<br>
the other project as a subdirectory, you can also extract the<br>
entire history of a subdirectory from your project and make it<br>
into a standalone project. Unlike the subtree merge strategy<br>
you can alternate back and forth between these<br>
two operations. If the standalone library gets updated, you can<br>
automatically merge the changes into your project; if you<br>
update the library inside your project, you can "split" the<br>
changes back out again and merge them back into the library<br>
project.</p>
</blockquote>



<a name="241839118"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241839118" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241839118">(Jun 07 2021 at 20:53)</a>:</h4>
<p>One question I don't have the answer to is if we will have to cough up an RFC <strong>before</strong> we open the PR? I expect we don't have to have the RFC merged.</p>



<a name="241839161"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241839161" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241839161">(Jun 07 2021 at 20:53)</a>:</h4>
<p>...we should actually ask T-libs that.</p>



<a name="241839291"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241839291" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Caleb Zulawski <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241839291">(Jun 07 2021 at 20:54)</a>:</h4>
<p>Yeah that's a good question</p>



<a name="241839315"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241839315" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241839315">(Jun 07 2021 at 20:54)</a>:</h4>
<p>I also think we've been supposed to be posting monthly-ish project updates which was being taken care of by Ashley and now no one is doing that? ^^; So we probably want to find where that was supposed to happen and post a project update at them and throw questions alongside it.</p>



<a name="241839389"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241839389" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Caleb Zulawski <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241839389">(Jun 07 2021 at 20:55)</a>:</h4>
<p>Whoops</p>



<a name="241839410"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241839410" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241839410">(Jun 07 2021 at 20:55)</a>:</h4>
<p>/shrug 2020 + 1</p>



<a name="241839429"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241839429" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Caleb Zulawski <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241839429">(Jun 07 2021 at 20:55)</a>:</h4>
<p>Yeah my thoughts lol</p>



<a name="241839464"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241839464" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jacob Lifshay <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241839464">(Jun 07 2021 at 20:55)</a>:</h4>
<p>hi!</p>



<a name="241839550"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241839550" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241839550">(Jun 07 2021 at 20:56)</a>:</h4>
<p>Hello!</p>



<a name="241839829"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241839829" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jacob Lifshay <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241839829">(Jun 07 2021 at 20:58)</a>:</h4>
<p>I was waiting on additional replies to wg-llvm, then forgot to start the thread on the llvm mailing list <span aria-label="embarrassed" class="emoji emoji-1f633" role="img" title="embarrassed">:embarrassed:</span></p>



<a name="241839959"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241839959" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241839959">(Jun 07 2021 at 20:59)</a>:</h4>
<p>that's fair. ^^;</p>



<a name="241840004"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241840004" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241840004">(Jun 07 2021 at 20:59)</a>:</h4>
<p>I can hardly call myself the Most Remembering Person Ever given I definitely got rabbitholed by other stuff. :P</p>



<a name="241840131"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241840131" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241840131">(Jun 07 2021 at 21:00)</a>:</h4>
<p>Oh so the SimdArray trait plus the gather/scatter impl can be seen here, I haven't PRed it yet because I'm probably going to rework some stuff and rebase it but this is all functional. ^^; <a href="https://github.com/rust-lang/stdsimd/compare/feat/gather">https://github.com/rust-lang/stdsimd/compare/feat/gather</a></p>



<a name="241840157"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241840157" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jacob Lifshay <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241840157">(Jun 07 2021 at 21:00)</a>:</h4>
<p>I'll send that message to llvm-dev after the meeting, unless someone else gets to it first. please cc me if you do, I have llvm-dev emails turned off since I want to be able to at least find my non-llvm emails :)</p>



<a name="241840210"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241840210" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241840210">(Jun 07 2021 at 21:01)</a>:</h4>
<p>yeah those e-mail lists are useless unless you have like inbox filtering for separate inboxes.</p>



<a name="241840303"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241840303" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jacob Lifshay <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241840303">(Jun 07 2021 at 21:01)</a>:</h4>
<p>anyone else I should cc?</p>



<a name="241840485"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241840485" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241840485">(Jun 07 2021 at 21:03)</a>:</h4>
<p>I honestly don't understand mailing list etiquette so I don't know. ^^;;;;;</p>



<a name="241840509"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241840509" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241840509">(Jun 07 2021 at 21:03)</a>:</h4>
<p>I am not on the list tho'.</p>



<a name="241840652"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241840652" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jacob Lifshay <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241840652">(Jun 07 2021 at 21:04)</a>:</h4>
<p>basic summary of nailing list etiquette: avoid top-posting and be nice.</p>



<a name="241840713"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241840713" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jacob Lifshay <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241840713">(Jun 07 2021 at 21:05)</a>:</h4>
<p>other than that, it doesn't seem like anything special to me.</p>



<a name="241840740"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241840740" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241840740">(Jun 07 2021 at 21:05)</a>:</h4>
<p><span class="user-mention" data-user-id="312331">@Caleb Zulawski</span> ah this is where it was from. <a href="https://github.com/rust-lang/compiler-team/issues/266">https://github.com/rust-lang/compiler-team/issues/266</a></p>



<a name="241840873"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241840873" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jacob Lifshay <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241840873">(Jun 07 2021 at 21:06)</a>:</h4>
<p>also, cc-ing people not on the mailing list works just fine</p>



<a name="241840886"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241840886" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241840886">(Jun 07 2021 at 21:06)</a>:</h4>
<p>ah OK.</p>



<a name="241840934"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241840934" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241840934">(Jun 07 2021 at 21:07)</a>:</h4>
<p>go ahead and cc me then!</p>



<a name="241840943"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241840943" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jacob Lifshay <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241840943">(Jun 07 2021 at 21:07)</a>:</h4>
<p>just use reply-to-all so everyone can see your messages</p>



<a name="241841648"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241841648" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241841648">(Jun 07 2021 at 21:13)</a>:</h4>
<p>Oh and... so... LLVM has an instruction called <code>getelementptr</code> or just <code>gep</code>, which is "specifically modifying a pointer with rules for pointer arithmetic".</p>



<a name="241841819"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241841819" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jacob Lifshay <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241841819">(Jun 07 2021 at 21:15)</a>:</h4>
<p>gep is a load of fun!</p>



<a name="241841970"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241841970" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jacob Lifshay <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241841970">(Jun 07 2021 at 21:16)</a>:</h4>
<p>stuck squarely in the overlap of alias analysis, undefined behavior, address wrapping, and general confusion</p>



<a name="241842040"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241842040" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241842040">(Jun 07 2021 at 21:17)</a>:</h4>
<p><code>gep</code> supports operations of "vectors of pointers"<br>
In my draft, I wound up having to use casting pointers to ints and then back to pointers to get vectorized ops. That doesn't use <code>gep</code>. It came up in <a href="#narrow/stream/136281-t-lang.2Fwg-unsafe-code-guidelines/topic/Exactly.20how.20evil.20is.20pointer.20arith.3F">https://rust-lang.zulipchat.com/#narrow/stream/136281-t-lang.2Fwg-unsafe-code-guidelines/topic/Exactly.20how.20evil.20is.20pointer.20arith.3F</a> that we could  teach rustc to emit LLVM IR for <code>gep</code> instead of casting ptrs to ints and then back to ptrs. However that raises the question of if it imposes an implementation burden of any kind on e.g. cranelift? Do we want to someday do that?</p>



<a name="241842194"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241842194" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jacob Lifshay <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241842194">(Jun 07 2021 at 21:18)</a>:</h4>
<p>I think we should support vector gep, since that theoretically improves performance due to better alias analysis</p>



<a name="241842323"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241842323" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jacob Lifshay <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241842323">(Jun 07 2021 at 21:19)</a>:</h4>
<p>cranelift should pretty trivially be able translate it to an address calculation</p>



<a name="241842691"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241842691" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241842691">(Jun 07 2021 at 21:21)</a>:</h4>
<p>I guess it basically is just implementable as math, yeah.</p>



<a name="241842717"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241842717" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jacob Lifshay <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241842717">(Jun 07 2021 at 21:21)</a>:</h4>
<p>since gep is basically the llvm ir equivalent of something like <code>&amp;raw ptr.field1.field2[index].field3</code></p>



<a name="241842841"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241842841" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241842841">(Jun 07 2021 at 21:22)</a>:</h4>
<p>"<code>simd_offset</code>: see <code>simd_add</code> if you don't have an optimization for it. <em>shrug</em>"</p>



<a name="241842975"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241842975" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jacob Lifshay <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241842975">(Jun 07 2021 at 21:23)</a>:</h4>
<p>well, wrapping_offset/offset do have different semantics than ptr -&gt; int add -&gt; ptr</p>



<a name="241843106"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241843106" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241843106">(Jun 07 2021 at 21:24)</a>:</h4>
<p>it's mostly about maintaining invariants in addition tho', no?</p>



<a name="241843211"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241843211" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jacob Lifshay <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241843211">(Jun 07 2021 at 21:25)</a>:</h4>
<p>in particular they specify that the ptr input is the only thing that should be treated as a ptr, whereas <code>(ptr1 as usize + ptr2 as usize - ptr3 as usize) as *mut T</code> could be considered to be based on all of ptr1/2/3</p>



<a name="241843265"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241843265" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jacob Lifshay <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241843265">(Jun 07 2021 at 21:26)</a>:</h4>
<p>for alias analysis</p>



<a name="241844502"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241844502" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241844502">(Jun 07 2021 at 21:37)</a>:</h4>
<p>mmh.</p>



<a name="241844519"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241844519" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241844519">(Jun 07 2021 at 21:37)</a>:</h4>
<p>I see.</p>



<a name="241844566"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241844566" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241844566">(Jun 07 2021 at 21:37)</a>:</h4>
<p>...</p>



<a name="241844580"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241844580" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241844580">(Jun 07 2021 at 21:37)</a>:</h4>
<p>...my scatter probably does weird things if it hits the same var twice.</p>



<a name="241844676"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241844676" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241844676">(Jun 07 2021 at 21:38)</a>:</h4>
<p>lmao</p>



<a name="241844749"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241844749" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jacob Lifshay <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241844749">(Jun 07 2021 at 21:39)</a>:</h4>
<p>hmm, idk what exact semantics llvm provides, but SimpleV specifies that later lanes always get written last</p>



<a name="241844793"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241844793" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jacob Lifshay <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241844793">(Jun 07 2021 at 21:39)</a>:</h4>
<p>or at least the memory is as-if that were true</p>



<a name="241845140"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241845140" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jacob Lifshay <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241845140">(Jun 07 2021 at 21:42)</a>:</h4>
<p>ah, llvm specifies:</p>
<blockquote>
<p>Scatter with overlapping addresses is guaranteed to be ordered from least-significant to most-significant element.</p>
</blockquote>



<a name="241845152"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241845152" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241845152">(Jun 07 2021 at 21:42)</a>:</h4>
<p>aha.</p>



<a name="241845311"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241845311" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jacob Lifshay <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241845311">(Jun 07 2021 at 21:44)</a>:</h4>
<p>I'm assuming most-significant means highest index/last element</p>



<a name="241845348"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241845348" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241845348">(Jun 07 2021 at 21:44)</a>:</h4>
<p>I would hope so? ^^;</p>



<a name="241845874"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241845874" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241845874">(Jun 07 2021 at 21:49)</a>:</h4>
<blockquote>
<p>If two or more destination indices completely overlap, the “earlier” write(s) may be skipped.</p>
</blockquote>



<a name="241845884"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241845884" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241845884">(Jun 07 2021 at 21:49)</a>:</h4>
<p><strong>may</strong> be skipped</p>



<a name="241845944"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241845944" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jacob Lifshay <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241845944">(Jun 07 2021 at 21:50)</a>:</h4>
<p>seems fine to me...</p>



<a name="241846014"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241846014" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jacob Lifshay <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241846014">(Jun 07 2021 at 21:50)</a>:</h4>
<p>just don't use scatter for volatile stores</p>



<a name="241846030"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241846030" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241846030">(Jun 07 2021 at 21:50)</a>:</h4>
<p>I guess so.</p>



<a name="241846473"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241846473" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jacob Lifshay <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241846473">(Jun 07 2021 at 21:54)</a>:</h4>
<p>for trig precision, i suggest we aim for opencl accuracy, though we may want more accurate than that in some cases</p>



<a name="241846851"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241846851" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jacob Lifshay <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241846851">(Jun 07 2021 at 21:58)</a>:</h4>
<p><a href="https://www.khronos.org/registry/OpenCL/specs/3.0-unified/html/OpenCL_Env.html#_ulp_values_for_math_instructions_full_profile">https://www.khronos.org/registry/OpenCL/specs/3.0-unified/html/OpenCL_Env.html#_ulp_values_for_math_instructions_full_profile</a></p>



<a name="241846936"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241846936" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Caleb Zulawski <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241846936">(Jun 07 2021 at 21:59)</a>:</h4>
<p>Is there some standard the scalar implementations satisfy?</p>



<a name="241847086"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241847086" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jacob Lifshay <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241847086">(Jun 07 2021 at 22:00)</a>:</h4>
<p>yes, it's a free for all! seriously, idk</p>



<a name="241847147"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241847147" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Caleb Zulawski <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241847147">(Jun 07 2021 at 22:00)</a>:</h4>
<p>I do suspect it's entirely up to the implementation <span aria-label="oh no" class="emoji emoji-1f615" role="img" title="oh no">:oh_no:</span></p>



<a name="241847158"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241847158" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241847158">(Jun 07 2021 at 22:00)</a>:</h4>
<p>I believe IEEE754 has its own recommendations, but in practice we use libm for most things, which has whatever the C standard specifies.</p>



<a name="241847195"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241847195" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jacob Lifshay <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241847195">(Jun 07 2021 at 22:01)</a>:</h4>
<p>there is crlibm which is specified to always give correctly rounded results</p>



<a name="241847221"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241847221" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Caleb Zulawski <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241847221">(Jun 07 2021 at 22:01)</a>:</h4>
<p>Perhaps POSIX has a requirement?</p>



<a name="241847270"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241847270" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jacob Lifshay <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241847270">(Jun 07 2021 at 22:01)</a>:</h4>
<p>posix tends to defer to c99 or c11 for that stuff...</p>



<a name="241847347"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241847347" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Caleb Zulawski <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241847347">(Jun 07 2021 at 22:02)</a>:</h4>
<p>Then perhaps ANSI/ISO has a requirement</p>



<a name="241847378"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241847378" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241847378">(Jun 07 2021 at 22:02)</a>:</h4>
<p>time to find out what all of them say. <span aria-label="upside down" class="emoji emoji-1f643" role="img" title="upside down">:upside_down:</span></p>



<a name="241847394"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241847394" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Caleb Zulawski <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241847394">(Jun 07 2021 at 22:02)</a>:</h4>
<p>Fwiw I don't particularly care what the accuracy is but I do hope we can at least justify it, and hopefully be consistent with scalar math</p>



<a name="241847877"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241847877" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241847877">(Jun 07 2021 at 22:07)</a>:</h4>
<p>Caleb, would you figure out what trig accuracy standards various things use, then? I can pull stuff out of IEEE754 but I don't really know where else to go looking.</p>



<a name="241847994"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241847994" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jacob Lifshay <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241847994">(Jun 07 2021 at 22:08)</a>:</h4>
<p>c++ defers to c for trig accuracy, c doesn't specify. posix specifies a few special cases, but leaves the rest up to implementations.</p>



<a name="241847997"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241847997" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jacob Lifshay <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241847997">(Jun 07 2021 at 22:08)</a>:</h4>
<p><a href="https://pubs.opengroup.org/onlinepubs/9699919799/functions/cos.html">https://pubs.opengroup.org/onlinepubs/9699919799/functions/cos.html</a></p>



<a name="241848002"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241848002" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Caleb Zulawski <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241848002">(Jun 07 2021 at 22:08)</a>:</h4>
<p>Lol</p>



<a name="241848006"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241848006" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Caleb Zulawski <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241848006">(Jun 07 2021 at 22:08)</a>:</h4>
<p>That's what I assumed</p>



<a name="241848017"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241848017" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Caleb Zulawski <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241848017">(Jun 07 2021 at 22:09)</a>:</h4>
<p>I can dig into it more but I'm fine with opencl</p>



<a name="241848048"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241848048" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jacob Lifshay <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241848048">(Jun 07 2021 at 22:09)</a>:</h4>
<p>opencl has a decent spec since it's aimed at people who like their math accuracy without excessive slowdown</p>



<a name="241848141"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241848141" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jacob Lifshay <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241848141">(Jun 07 2021 at 22:10)</a>:</h4>
<p>Vulkan/OpenGL are pitifully inaccurate</p>



<a name="241848176"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241848176" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jacob Lifshay <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241848176">(Jun 07 2021 at 22:10)</a>:</h4>
<p>to the point where f32 sin has as much accuracy as f16!</p>



<a name="241848229"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241848229" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241848229">(Jun 07 2021 at 22:11)</a>:</h4>
<p>welp lol.</p>



<a name="241848233"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241848233" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jacob Lifshay <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241848233">(Jun 07 2021 at 22:11)</a>:</h4>
<p>the sin_pi functions I wrote are good enough for opencl</p>



<a name="241848337"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241848337" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jacob Lifshay <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241848337">(Jun 07 2021 at 22:12)</a>:</h4>
<p>2ulp over whole range with exact results at special input values, except they don't always give the correct sign for zeros</p>



<a name="241848377"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241848377" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jacob Lifshay <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241848377">(Jun 07 2021 at 22:13)</a>:</h4>
<p>opencl just requires 4ulp</p>



<a name="241848404"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241848404" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jacob Lifshay <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241848404">(Jun 07 2021 at 22:13)</a>:</h4>
<p>except for f16 where it's just 2 ulp</p>



<a name="241848490"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241848490" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Caleb Zulawski <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241848490">(Jun 07 2021 at 22:14)</a>:</h4>
<p>2 ulp sounds reasonable to me</p>



<a name="241848521"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241848521" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Caleb Zulawski <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241848521">(Jun 07 2021 at 22:14)</a>:</h4>
<p>I'm curious what glibc does</p>



<a name="241848595"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241848595" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jacob Lifshay <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241848595">(Jun 07 2021 at 22:15)</a>:</h4>
<p>glibc likely has &lt;1ulp since they can go to tons of extra effort with double-double arithmetic</p>



<a name="241848625"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241848625" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Caleb Zulawski <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241848625">(Jun 07 2021 at 22:15)</a>:</h4>
<p>True</p>



<a name="241848700"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241848700" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jacob Lifshay <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241848700">(Jun 07 2021 at 22:16)</a>:</h4>
<p>2ulp doesn't require double-double for sin_pi</p>



<a name="241848749"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241848749" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jacob Lifshay <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241848749">(Jun 07 2021 at 22:16)</a>:</h4>
<p>it may be required for sin though because of the argument reduction</p>



<a name="241848795"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241848795" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Caleb Zulawski <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241848795">(Jun 07 2021 at 22:17)</a>:</h4>
<p><a href="https://software.intel.com/content/www/us/en/develop/documentation/ipp-dev-reference/top/volume-1-signal-and-data-processing/fixed-accuracy-arithmetic-functions/trigonometric-functions/cos.html">https://software.intel.com/content/www/us/en/develop/documentation/ipp-dev-reference/top/volume-1-signal-and-data-processing/fixed-accuracy-arithmetic-functions/trigonometric-functions/cos.html</a></p>



<a name="241848822"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241848822" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Caleb Zulawski <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241848822">(Jun 07 2021 at 22:17)</a>:</h4>
<p>May be worth looking at this for a commercial implementation's accuracy</p>



<a name="241848843"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241848843" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Caleb Zulawski <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241848843">(Jun 07 2021 at 22:17)</a>:</h4>
<p>Intel does have vectorized 1ulp implementations</p>



<a name="241849013"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241849013" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241849013">(Jun 07 2021 at 22:19)</a>:</h4>
<p>huh.</p>



<a name="241849154"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241849154" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jacob Lifshay <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241849154">(Jun 07 2021 at 22:21)</a>:</h4>
<p>wine's msvcrt just copied from musl</p>



<a name="241849296"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241849296" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jacob Lifshay <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241849296">(Jun 07 2021 at 22:22)</a>:</h4>
<p>sleef has a 0.5ulp sin</p>



<a name="241849309"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241849309" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jacob Lifshay <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241849309">(Jun 07 2021 at 22:23)</a>:</h4>
<p>using double-double arithmetic</p>



<a name="241849819"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241849819" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jacob Lifshay <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241849819">(Jun 07 2021 at 22:29)</a>:</h4>
<p>glibc's fallback cosf: <a href="https://github.com/bminor/glibc/blob/master/sysdeps/ieee754/flt-32/s_cosf.c">https://github.com/bminor/glibc/blob/master/sysdeps/ieee754/flt-32/s_cosf.c</a></p>



<a name="241849844"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241849844" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jacob Lifshay <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241849844">(Jun 07 2021 at 22:29)</a>:</h4>
<p>&lt;0.6ulp</p>



<a name="241850270"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241850270" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jacob Lifshay <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241850270">(Jun 07 2021 at 22:34)</a>:</h4>
<p>well, gtg. bye all!</p>



<a name="241850579"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241850579" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241850579">(Jun 07 2021 at 22:38)</a>:</h4>
<p>ah sorry I got distracted. bye!</p>



<a name="241863454"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241863454" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> scottmcm <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241863454">(Jun 08 2021 at 02:08)</a>:</h4>
<p><span class="user-mention silent" data-user-id="312331">Caleb Zulawski</span> <a href="#narrow/stream/257879-project-portable-simd/topic/Meeting.202021-06-07/near/241847394">said</a>:</p>
<blockquote>
<p>Fwiw I don't particularly care what the accuracy is but I do hope we can at least justify it, and hopefully be consistent with scalar math</p>
</blockquote>
<p>Well efficient ½ULP is apparently still an open problem...</p>
<p>AVX added a bunch of relative-error-2⁻²³ methods, like <code>_mm512_exp2a23_pd</code> -- any idea why they picked that threshold?</p>



<a name="241863568"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241863568" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Miguel Raz Guzmán Macedo <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241863568">(Jun 08 2021 at 02:10)</a>:</h4>
<p>That seems to be 32bit float's epsilon:</p>
<div class="codehilite" data-code-language="Julia"><pre><span></span><code><span class="n">julia</span><span class="o">&gt;</span> <span class="n">eps</span><span class="p">(</span><span class="kt">Float32</span><span class="p">)</span>
<span class="mf">1.1920929f-7</span>

<span class="n">julia</span><span class="o">&gt;</span> <span class="n">eps</span><span class="p">(</span><span class="kt">Float64</span><span class="p">)</span>
<span class="mf">2.220446049250313e-16</span>

<span class="n">julia</span><span class="o">&gt;</span> <span class="mi">2</span><span class="o">^</span><span class="p">(</span><span class="o">-</span><span class="mi">23</span><span class="p">)</span>
<span class="mf">1.1920928955078125e-7</span>
</code></pre></div>



<a name="241863983"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241863983" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241863983">(Jun 08 2021 at 02:20)</a>:</h4>
<p><code>2^(-23) == eps(Float32)</code> yes?</p>



<a name="241864018"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241864018" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Miguel Raz Guzmán Macedo <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241864018">(Jun 08 2021 at 02:21)</a>:</h4>
<p>Julia agrees</p>



<a name="241864019"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241864019" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Miguel Raz Guzmán Macedo <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241864019">(Jun 08 2021 at 02:21)</a>:</h4>
<div class="codehilite" data-code-language="Julia"><pre><span></span><code><span class="n">julia</span><span class="o">&gt;</span> <span class="n">eps</span><span class="p">(</span><span class="kt">Float32</span><span class="p">)</span> <span class="o">==</span> <span class="mi">2</span><span class="o">^-</span><span class="mi">23</span>
<span class="nb">true</span>
</code></pre></div>



<a name="241864070"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241864070" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Miguel Raz Guzmán Macedo <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241864070">(Jun 08 2021 at 02:22)</a>:</h4>
<p>(<code>eps</code> here being the Machine epsilon for 32 bit floats, the smallest increment allowed in the spec)</p>



<a name="241864077"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241864077" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Miguel Raz Guzmán Macedo <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241864077">(Jun 08 2021 at 02:22)</a>:</h4>
<p>(without counting subnormals I think)</p>



<a name="241864175"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241864175" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Caleb Zulawski <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241864175">(Jun 08 2021 at 02:24)</a>:</h4>
<p>Machine epsilon should be the largest possible error</p>



<a name="241864187"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241864187" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Caleb Zulawski <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241864187">(Jun 08 2021 at 02:24)</a>:</h4>
<p>ULPs are related to the smallest step (and those steps are relative to the value)</p>



<a name="241864196"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241864196" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Miguel Raz Guzmán Macedo <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241864196">(Jun 08 2021 at 02:25)</a>:</h4>
<p>derp - right</p>



<a name="241864197"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241864197" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Miguel Raz Guzmán Macedo <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241864197">(Jun 08 2021 at 02:25)</a>:</h4>
<p>my bad</p>



<a name="241864208"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241864208" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Caleb Zulawski <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241864208">(Jun 08 2021 at 02:25)</a>:</h4>
<p>Np just worth being precise for this</p>



<a name="241864465"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241864465" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jacob Lifshay <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241864465">(Jun 08 2021 at 02:31)</a>:</h4>
<p>iirc eps is the difference between 1.0 and the next float after</p>



<a name="241864520"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/241864520" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jacob Lifshay <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#241864520">(Jun 08 2021 at 02:32)</a>:</h4>
<p>also: started a thread on llvm-dev <a href="https://lists.llvm.org/pipermail/llvm-dev/2021-June/150965.html">https://lists.llvm.org/pipermail/llvm-dev/2021-June/150965.html</a></p>



<a name="242118966"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/242118966" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Thom Chiovoloni <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#242118966">(Jun 09 2021 at 19:42)</a>:</h4>
<p>i think it would be pretty reasonable to offer reduced accuracy for simd special functions, honeslty. you can always just iterate over the scalars and call the high precision function.</p>
<p>if not, it might better apply under fast-math stuff (I've been working on a pre-rfc for this in my spare time, although the focus has not really been on the optimizations that call approximated versions of special functions)</p>



<a name="242119014"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Meeting%202021-06-07/near/242119014" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Thom Chiovoloni <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Meeting.202021-06-07.html#242119014">(Jun 09 2021 at 19:42)</a>:</h4>
<p><em>how</em> reduced is admittedly very hard to come up with any justification for</p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>